package controloBD;

import java.util.*;
import java.sql.*;

/**
 * Classe auxiliar para tratar os resultados de uma query.
 * Guarda o resultado de um ResultSet numa tabela,
 * representada por um Vector que integra matrizes do tipo DataElement.
 */
public class QueryResult {

    private Vector tabela = new Vector();

    /**
     * Classe que guarda o resultado de um ResultSet numa tabela,
     * representada por um Vector que integra matrizes do tipo DataElement
     */
    public void populateData(ResultSet rs) throws SQLException {
        ResultSetMetaData metaData = rs.getMetaData();
        int colCnt = metaData.getColumnCount();
        while (rs.next()) {
            for (int i = 0; i < colCnt; i++) {
                tabela.add(rs.getObject(i + 1));
            }
        }
    }

    /**
     * Inspector para a tabela dos dados retirados do ResultSet
     */
    public Vector tabela() {

        return tabela;
    }

    /**
     * Classe embutida que representa cada elemento que é retirado do
    ResulSet,
     * qualquer que seja o seu tipo
     */
    private class DataElement {

        int dataType;
        String dataTypeName;
        Object value;
        String colName;
    }
}
